# main.py
import os
import requests
from datetime import datetime  # 修改这里的导入方式以避免潜在的命名冲突
from pathlib import Path
import FotoDedupe
import platformdirs
import tkinter as tk
from tkinter import scrolledtext
from tkinter import messagebox

# 将 text_area 定义为全局变量
text_area = None

def on_submit():
    # 使用全局变量 text_area
    global text_area
    # 获取文本框中的内容
    text_content = text_area.get("1.0", tk.END)  # "1.0" 表示第一行的第一个字符，tk.END 表示文本的末尾
    download_img(text_content.strip())
    # 打印到控制台（在 IDE 的控制台或命令行窗口中）
    # print("你输入了以下内容（已打印到控制台）：\n" + text_content.strip())  # 使用 strip() 去除可能的首尾空白字符
    # 显示一个消息框来确认（可选）
    # messagebox.showinfo("文本内容", "你输入了以下内容（已打印到控制台）：\n" + text_content.strip())
    # 清除文本框内容
    text_area.delete("1.0", tk.END)

def main():
    # 创建主窗口
    root = tk.Tk()
    root.title("长文本输入框示例（中文）")
    root.geometry("600x400")  # 设置窗口大小

    # 在这里创建 text_area，并赋值为全局变量
    global text_area
    text_area = scrolledtext.ScrolledText(root, wrap=tk.WORD, width=40, height=10, font=("Arial", 12))
    text_area.grid(row=0, column=0, padx=10, pady=10)

    # 创建一个提交按钮，并绑定到 on_submit 函数
    submit_button = tk.Button(root, text="提交", command=on_submit)
    submit_button.grid(row=1, column=0, pady=10)

    # 运行主循环
    root.mainloop()



def get_desktop_path():
    return platformdirs.user_desktop_path()

def fetch_data(url):
    response = requests.get(url)
    return response

def clean_path(path):
    # 需要去除的特殊字符
    special_characters = ['/', '*', '?', '"', '<', '>', '|','‘','’']
    for char in special_characters:
        path = path.replace(char, '')
    return path

def download_img(text):



    title = text.split('"og:title" content="')[1].split('"')[0]
    print(f"正在下载 {title} 的图片...")

    testArr = text.split('data-src="')
    imgUrlArr = []

    for i in range(1, len(testArr)):
        imgUrl = testArr[i].split('"')[0]
        # print(imgUrl)
        if imgUrl.startswith('http') and ('wx_fmt=jpeg' in imgUrl or 'wx_fmt=png' in imgUrl or 'sz_mmbiz_jpg' in imgUrl):
            imgUrlArr.append(imgUrl)
    # desktop_path = get_desktop_path()
    folder_root = 'E:\\03 DOWNFILE\\demoImg'
    folder_path = f'{folder_root}\\{datetime.now().date()}\\{title}\\'
    folder_path = clean_path(folder_path)

    testFolder = FotoDedupe.dedupe_folder_name(folder_root,clean_path(title))
    if testFolder['status'] == True:
        print(f"文件夹 '{title}' 已存在，跳过下载...")
        os.startfile(testFolder['path'])
        return

    Path(folder_path).mkdir(parents=True, exist_ok=True)

    imgUrlArrDis = list(set(imgUrlArr))
    for i in range(len(imgUrlArrDis)):
        response = requests.get(imgUrlArrDis[i])
        if response.status_code == 200:
            # 打开文件，准备写入
            with open(folder_path + str(i) + '.jpg', 'wb') as file:
                file.write(response.content)  # 将图片数据写入文件
            print(f"正在下载第 {i+1} 张图片...")
    print(f"图片下载成功并保存为 '{folder_path}'")
    os.startfile(folder_path)


if __name__ == "__main__":
    main()